package org.jsola.hr.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import org.jsola.core.dto.BaseDTO;

import static org.jsola.hr.example.TransferAccountsBankDetailExample.E_AMOUNT;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.E_BANK_BATCH_ID;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.E_FEE;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.E_ID_NO;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.E_ID_TYPE;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.E_OPP_ACC_NAME;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.E_OPP_ACC_NO;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.E_OPP_BANK_NAME;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.E_OTH_AREA_FLAG;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.E_OTH_BANK_FLAG;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.E_POST_SCRIPT;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.E_REMARK_FCR;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.E_STT;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.E_STT_INFO;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.E_S_THIRD_VOUCHER;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.E_THIRD_VOUCHER;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.M_AMOUNT_MAX;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.M_BANK_BATCH_ID_MAX;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.M_FEE_MAX;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.M_ID_NO_MAX;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.M_ID_TYPE_MAX;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.M_OPP_ACC_NAME_MAX;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.M_OPP_ACC_NO_MAX;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.M_OPP_BANK_NAME_MAX;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.M_OTH_AREA_FLAG_MAX;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.M_OTH_BANK_FLAG_MAX;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.M_POST_SCRIPT_MAX;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.M_REMARK_FCR_MAX;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.M_STT_INFO_MAX;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.M_STT_MAX;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.M_S_THIRD_VOUCHER_MAX;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.M_THIRD_VOUCHER_MAX;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.N_AMOUNT;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.N_BANK_BATCH_ID;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.N_FEE;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.N_ID_NO;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.N_ID_TYPE;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.N_OPP_ACC_NAME;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.N_OPP_ACC_NO;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.N_OPP_BANK_NAME;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.N_OTH_AREA_FLAG;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.N_OTH_BANK_FLAG;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.N_POST_SCRIPT;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.N_REMARK_FCR;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.N_STT;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.N_STT_INFO;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.N_S_THIRD_VOUCHER;
import static org.jsola.hr.example.TransferAccountsBankDetailExample.N_THIRD_VOUCHER;

/**
 * 转账明细(平安银行)
 *
 * @author zhr
 */
@EqualsAndHashCode(callSuper = true)
@ApiModel(description = "新增【转账明细(平安银行)】的参数")
@Data
public class TransferAccountsBankDetailAddDTO extends BaseDTO {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(notes = N_BANK_BATCH_ID, example = E_BANK_BATCH_ID)
    @Length(max = 32, message = M_BANK_BATCH_ID_MAX)
    private String bankBatchId;

    @ApiModelProperty(notes = N_THIRD_VOUCHER, example = E_THIRD_VOUCHER)
    @Length(max = 20, message = M_THIRD_VOUCHER_MAX)
    private String thirdVoucher;

    @ApiModelProperty(notes = N_S_THIRD_VOUCHER, example = E_S_THIRD_VOUCHER)
    @Length(max = 20, message = M_S_THIRD_VOUCHER_MAX)
    private String sThirdVoucher;

    @ApiModelProperty(notes = N_OTH_BANK_FLAG, example = E_OTH_BANK_FLAG)
    @Length(max = 1, message = M_OTH_BANK_FLAG_MAX)
    private String othBankFlag;

    @ApiModelProperty(notes = N_OTH_AREA_FLAG, example = E_OTH_AREA_FLAG)
    @Length(max = 1, message = M_OTH_AREA_FLAG_MAX)
    private String othAreaFlag;

    @ApiModelProperty(notes = N_ID_TYPE, example = E_ID_TYPE)
    @Length(max = 5, message = M_ID_TYPE_MAX)
    private String idType;

    @ApiModelProperty(notes = N_ID_NO, example = E_ID_NO)
    @Length(max = 25, message = M_ID_NO_MAX)
    private String idNo;

    @ApiModelProperty(notes = N_OPP_BANK_NAME, example = E_OPP_BANK_NAME)
    @Length(max = 30, message = M_OPP_BANK_NAME_MAX)
    private String oppBankName;

    @ApiModelProperty(notes = N_OPP_ACC_NO, example = E_OPP_ACC_NO)
    @Length(max = 30, message = M_OPP_ACC_NO_MAX)
    private String oppAccNo;

    @ApiModelProperty(notes = N_OPP_ACC_NAME, example = E_OPP_ACC_NAME)
    @Length(max = 32, message = M_OPP_ACC_NAME_MAX)
    private String oppAccName;

    @ApiModelProperty(notes = N_AMOUNT, example = E_AMOUNT)
    @Length(max = 17, message = M_AMOUNT_MAX)
    private String amount;

    @ApiModelProperty(notes = N_POST_SCRIPT, example = E_POST_SCRIPT)
    @Length(max = 30, message = M_POST_SCRIPT_MAX)
    private String postScript;

    @ApiModelProperty(notes = N_FEE, example = E_FEE)
    @Length(max = 17, message = M_FEE_MAX)
    private String fee;

    @ApiModelProperty(notes = N_STT, example = E_STT)
    @Length(max = 6, message = M_STT_MAX)
    private String stt;

    @ApiModelProperty(notes = N_STT_INFO, example = E_STT_INFO)
    @Length(max = 64, message = M_STT_INFO_MAX)
    private String sttInfo;

    @ApiModelProperty(notes = N_REMARK_FCR, example = E_REMARK_FCR)
    @Length(max = 60, message = M_REMARK_FCR_MAX)
    private String remarkFcr;


}

